// ----------------------------------
// RSDK Project: Sonic Essence
// Script Description: SSZ 1 Outro
// Script Author: Tails LP
// ----------------------------------

//-------Aliases-------//
private alias 0 : CUTSCENE_NONE
private alias 1 : CUTSCENE_MIDZONE
private alias 2 : CUTSCENE_ENDZONE

private alias object.value0 : cutscene.timer
private alias object.value10 : object.screenShake

private alias 666 : GROUP_CUTSCENES

//-------Function declarations-------//

//-------Static Values-------//

//-------Tables-------//


//-------Functions-------//


event ObjectMain
	switch object.state
	case 0
		object.screenShake = 64
		object.groupID = GROUP_CUTSCENES
		break
	case 1
			PlaySfx(SfxName[SSZ1 Outro], 0)
			StopMusic()
			cutscene.mode = CUTSCENE_MIDZONE
			
			foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
				object[currentPlayer].state = PlayerObject_Knockback
			endif
			object.state ++
		break
	case 2
			temp0 = object[-1].xpos
			temp0 -= 0x170000
			temp1 = object[-1].ypos
			temp1 += 0x190000

			object.value1++
			object.value2++
			
			if object.value2== 30
				object.screenShake = 0xFFFF
			end if


			temp2 = object.screenShake
			temp2 %= 40
			if temp2 == 8
				
			end if

			if object.value3 == 150
				createTempObject(TypeName[Lightning], 0, temp0, temp1)
				object.value3 = 151
			else
				object.value3++
			end if

			if object.value1 >= 200
				object.state ++
			end if

		break
	case 3
		object.alpha += 20
		if object.alpha >= 1600
			object.state ++
		endif
		break
	case 4
		temp0 = object.ixpos
		temp1 = object[0].ixPos
		temp1 -= temp0
		player.saveX = temp1

		temp0 = screen.Ycenter
		temp0 -= 120
		temp1 = object[0].iyPos
		temp1 -= temp0
		temp1 += 640
		player.saveY = temp1

		items.save = object[0].value37
// Camera and Signpost Values not done yet!!!
		temp0 = screen.cameraX
		temp1 = object[-1].ixpos
		temp1 -= temp0
		temp1 += 320
		signpost.saveX = temp1
		signpost.saveX *= 65536

		temp1 = object[-1].iypos
		temp1 -= 896
		signpost.saveY = temp1
		signpost.saveY *= 65536

		temp0 = 0
		camera.saveX1 = temp0

		temp0 += screen.xcenter
		temp0 += screen.xcenter
		camera.saveX2 = temp0

		camera.saveY1 = 944
		temp0 = camera.saveY1
		temp0 += screen.ysize
		camera.saveY2 = temp0

		object.state ++
		break
	case 5
		stage.listPos ++
		LoadStage()
		break
	endswitch
	
	if object.screenShake > 0
		object.screenShake--
		temp2 = object.screenShake
		temp2 &= 7
		if temp2 == 0
			screen.shakeX = 1
		end if
		temp2 = object.screenShake
		temp2 &= 3
		if temp2 == 0
			screen.shakeY = 2
		end if
	end if
	
	if object.state >= 2		
		object[0].animation = ANI_FLAILING1
		object[0].animationSpeed = 45
	endif
end event

event ObjectDraw
		drawRect(0, 0, screen.xsize, screen.ysize, 255, 255, 255, object.alpha)
end event

event ObjectStartup
	object.groupID = GROUP_CUTSCENES
	arrayPos0 = 32
	while arrayPos0 < 0x420
		if object[arrayPos0].type == TypeName[SSZ 1 Outro]
			object[arrayPos0].drawOrder = 6
		end if
		arrayPos0++
	loop
end event

event RSDK
	LoadSpriteSheet("Global/Display.gif")
	SetEditorIcon(Icon0,SingleIcon,-16,-16,32,32,1,143)
endevent
